Teaching Perl

Mr. Muskrat on 2005-07-07T00:03:05

About a week ago my supervisor told me that there is some interest in a Perl class among some of the Tier 3 resources (people who fix the code defects). She asked if I would be interested in teaching it. Of course, I said yes.

This week I had a meeting with my supervisor and one of the Tier 3 leads. It was decided that the class would be taught in four 3 hour sessions and that part of each session would be set aside for programming exercises. I recommended "Learning Perl" as the text.

I wrote up an outline right after the meeting that has me teaching the entire text. I have started writing my teaching plan as a series of (extended) lightning talks so that hopefully, I will have enough time left for questions and programming exercises.

I am not so sure that I can adequitely teach the class in the time allotted and still have the time needed for the exercises. I know that I can trim each chapter down but I am not sure which chapters should get the most emphasis. I am also not sure how many exercises to use for each chapter given that these are programmers and not total noobs.

Does anyone have any suggestions?

Below you will find the outline as of right now.
----------------------------------------

Name
Class::Learning::Perl - A class to teach Perl that uses ``Learning Perl'' as the foundation.

Description
Given that we will be limited to four 3 hour blocks of instruction, I have broken down the book into managable pieces. The class will cover the cornerstones of Perl knowledge while touching on some of the more advanced topics.

Day 1:

Chapter 1:
Introduction

Chapter 2:
Scalar Data

Chapter 3:
Lists and Arrays

Chapter 4:
Subroutines

Chapter 5:
Hashes

Day 2:

Chapter 6:
I/O Basics

Chapter 7:
Concepts of Regular Expressions

Chapter 8:
More About Regular Expressions

Chapter 9:
Using Regular Expressions

Day 3:

Chapter 10:
More Control Structures

Chapter 11:
Filehandles and File Tests

Chapter 12:
Directory Operations

Chapter 13:
Manipulating Files and Directories

Day 4:

Chapter 14:
Process Management

Chapter 15:
Strings and Sorting

Chapter 16:
Simple Databases

Chapter 17:
Some Advanced Perl Techniques

Appendix B:
Beyond the Llama


Side-by-side examples

davebaker on 2005-07-07T01:36:03

If these people know another language already, I'll bet they'd soak up the Perl best if you showed them side-by-side examples (how you'd do something like read a line of data in Perl and how you'd do it in the language they already know, for example).

There is nothing like teaching to make you really learn something :) I had to teach an Introduction to HTML last fall and ended up learning how to do useful CSS for the first time, while I taught it.

A question

eyidearie on 2005-07-07T14:50:26

Hi, I found your post about 'teaching perl" and I was hoping you could help me: I'm learning perl right now and I'm supposed to do my project at the same time. I need to access the data in a particular column of a particular sheet of an excel file; I also need to do a search for close matches in two lists of names (i used grep but that does exact matches) and I don't know how to do that. If you would please reply I'd really appreciate it. Thank you.

Re:A question

Mr. Muskrat on 2005-07-07T15:23:33

Check out PerlMonks. This is a common question and so you should be able to quickly find a solution there that you can understand.

Re:A question

eyidearie on 2005-07-07T15:35:18

Thanks

Welcome, eyidearie!

davebaker on 2005-07-07T15:27:37

The "use Perl;" site isn't the best place to get this kind of question answered; the journal system is used more for blog-type posts by individual users.

The FAQ for this site sorta tells you that but doesn't have a link to places where you can get answers to your kind of question.

What's this site for?

Thanks for asking. This site is intended (for now) to be a site where the Perl user community can get information about and discuss the latest news and issues related to Perl. This site is not (for now :) intended to be a help desk. General "how do I do $x?" questions can be answered in many other places online, including the many Perl mailing lists and news groups.

Please help us improve "use Perl;" by replying to this post and telling me what site or sites you've tried already in order to find a place to get an answer to your question.

Here's a good one, for example (though I'm curious to know if and how you found it already): http://faq.perl.org/

I'm not sure there's any way for me to contact you by email through "use Perl;" -- I don't think so, because your email address is set to be not shown publicly -- but feel free to email me directly at my email address (click on my name, elsewhere on this page) if you'd prefer.

Perl is a great language with a great community of users. Welcome!

Teaching Learning Perl

brian_d_foy on 2005-07-07T19:28:37

Aside from getting the authors of Learning Perl to teach the class (we wrote the book and slides based on what we actually teach), here's the best advice for you:

  • You can cover each chapter in about an hour
  • Give the students about 45 minutes for each section of exercises (less for the first chapter
    and a couple near the end)
  • I don't think you'll be able to do lectures and exercises in 12 hours. We teach that in 30 hours, and we have precise timing for everything and a lot of experience to make it come out. At YAPC::NA I got through most of Learning Perl in 8 hours by talking at light speed.
  • You can cheat by having them do the exercises outside of class. This doesn't work for the first
    half of the book, but is fine for the second half.
  • You can skip some of the stuff at the end to cut down on the time.

Re:Teaching Learning Perl

Mr. Muskrat on 2005-07-09T18:16:22

Everyone in the class already knows how to program in Java, C++, or some other language. Many have a very basic understanding of Perl already (data types, operators and some of the functions for example). I would have been much more comfortable with extra time but at least I'm not stuck with five one hour classes. It's definitely going to be a crash course though.

I have a few options:

  1. Request extra classes
  2. Cut out the exercises
  3. Cut back on the topics
  4. Cut back on the subject matter even further
I would love to add a few more 3 hours classes if I could (and I will request it) but it's probably not an option. If I cut out the exercises, I won't be able to judge how well they are understanding (but I'm not planning on having them do all of them in class either). I could cut back on the topics; Chapter 14: Process Management, Chapter 16: Simple Databases, Chapter 17: Some Advanced Perl Techniques and Appendix B: Beyond the Llama are all prime candidates (which is probably the plan if the extra classes are refused). I really don't see how I could trim the existing information back any further since the current plan is to breeze through it.